package com.kaizeli.website.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;

/**
 * WebSocket独立端口配置
 * 配置WebSocket服务运行在独立端口
 */
@Slf4j
@Configuration
public class WebSocketPortConfig {

    @Value("${websocket.server.port:8087}")
    private int websocketPort;

    /**
     * 配置WebSocket服务器端点导出器
     */
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }

    /**
     * 自定义WebSocket服务器端口配置
     * 注意：这个方法只是配置，实际的端口分离需要通过其他方式实现
     */
    @Bean
    public WebServerFactoryCustomizer<TomcatServletWebServerFactory> webSocketServerCustomizer() {
        return factory -> {
            log.info("WebSocket服务器端口配置: {}", websocketPort);
            // 注意：Spring Boot的WebSocket默认运行在主服务器端口上
            // 要实现独立端口，需要使用其他方案
        };
    }
}
